package com.zjsru.plan2024.oneday;

/**
 * 3200. 三角形的最大高度
 *
 * @Author: cookLee
 * @Date: 2024-10-15
 */
public class MaxHeightOfTriangle {

    /**
     * 主:每一行的球必须是 相同 颜色，且相邻行的颜色必须 不同。
     * \
     * 输入： red = 2, blue = 4
     * 输出： 3
     * \
     *
     * @param args args
     */
    public static void main(String[] args) {
        MaxHeightOfTriangle maxHeightOfTriangle = new MaxHeightOfTriangle();
        int red = 2;
        int blue = 4;
        System.out.println(maxHeightOfTriangle.maxHeightOfTriangle(red, blue));
    }

    /**
     * 三角形最大高度
     *
     * @param red  红色
     * @param blue 蓝色
     * @return int
     */
    public int maxHeightOfTriangle(int red, int blue) {
        return Math.max(this.helper(red, blue), this.helper(blue, red));
    }

    /**
     * 帮手
     * 计算层数帮手
     *
     * @param first  第一
     * @param second 第二
     * @return {@link Integer}
     */
    private Integer helper(int first, int second) {
        //可以构建的最大层数
        int len = 1;
        do {
            //相邻行颜色需要不同
            if (len % 2 == 1) {
                first -= len;
                //不满足条件
                if (first < 0) {
                    return len - 1;
                }
            } else {
                second -= len;
                if (second < 0) {
                    return len - 1;
                }
            }
            //满足条件可以增加一层
            len++;
        } while (true);
    }

}
